﻿using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;


namespace CuongHanh.Context
{
    public class BoDauTiengViet
    {
        private readonly Dictionary<char, char> _datas = new Dictionary<char, char>();
        public static readonly BoDauTiengViet Singleton=new BoDauTiengViet();

        private BoDauTiengViet()
        {
            LoadData();
        }

        public string ToUrlName(string text)
        {
            text = text.Trim();
            var str = new StringBuilder();
            foreach (var item in text)
                str.Append(_datas.ContainsKey(item) ? _datas[item] : item);
            return str.ToString().ToLower();
        }

        private void LoadData()
        {
                _datas.Add('à', 'a');
                _datas.Add('á', 'a');
                _datas.Add('ả', 'a');
                _datas.Add('ã', 'a');
                _datas.Add('ạ', 'a');
				
                _datas.Add('â', 'a');
                _datas.Add('ầ', 'a');
                _datas.Add('ấ', 'a');
                _datas.Add('ẩ', 'a');
                _datas.Add('ẫ', 'a');
                _datas.Add('ậ', 'a');
				
                _datas.Add('ă', 'a');
                _datas.Add('ằ', 'a');
                _datas.Add('ắ', 'a');
                _datas.Add('ẳ', 'a');
                _datas.Add('ẵ', 'a');
                _datas.Add('ặ', 'a');
				
                _datas.Add('đ', 'd');
				
                _datas.Add('è', 'e');
                _datas.Add('é', 'e');
                _datas.Add('ẻ', 'e');
                _datas.Add('ẽ', 'e');
                _datas.Add('ẹ', 'e');
				
                _datas.Add('ê', 'e');
                _datas.Add('ề', 'e');
                _datas.Add('ế', 'e');
                _datas.Add('ể', 'e');
                _datas.Add('ễ', 'e');
                _datas.Add('ệ', 'e');
				
                _datas.Add('ì', 'i');
                _datas.Add('í', 'i');
                _datas.Add('ỉ', 'i');
                _datas.Add('ĩ', 'i');
                _datas.Add('ị', 'i');
				
                _datas.Add('ò', 'o');
                _datas.Add('ó', 'o');
                _datas.Add('ỏ', 'o');
                _datas.Add('õ', 'o');
                _datas.Add('ọ', 'o');
				
                _datas.Add('ô', 'o');
                _datas.Add('ồ', 'o');
                _datas.Add('ố', 'o');
                _datas.Add('ổ', 'o');
                _datas.Add('ỗ', 'o');
                _datas.Add('ộ', 'o');
				
                _datas.Add('ơ', 'o');
                _datas.Add('ờ', 'o');
                _datas.Add('ớ', 'o');
                _datas.Add('ở', 'o');
                _datas.Add('ỡ', 'o');
                _datas.Add('ợ', 'o');
				
                _datas.Add('ù', 'u');
                _datas.Add('ú', 'u');
                _datas.Add('ủ', 'u');
                _datas.Add('ũ', 'u');
                _datas.Add('ụ', 'u');
				
                _datas.Add('ư', 'u');
                _datas.Add('ừ', 'u');
                _datas.Add('ứ', 'u');
                _datas.Add('ử', 'u');
                _datas.Add('ữ', 'u');
                _datas.Add('ự', 'u');
				
                _datas.Add('ỳ', 'y');
                _datas.Add('ý', 'y');
                _datas.Add('ỷ', 'y');
                _datas.Add('ỹ', 'y');
                _datas.Add('ỵ', 'y');

                _datas.Add('À', 'A');
                _datas.Add('Á', 'A');
                _datas.Add('Ả', 'A');
                _datas.Add('Ã', 'A');
                _datas.Add('Ạ', 'A');
				
                _datas.Add('Â', 'A');
                _datas.Add('Ầ', 'A');
                _datas.Add('Ấ', 'A');
                _datas.Add('Ẩ', 'A');
                _datas.Add('Ẫ', 'A');
                _datas.Add('Ậ', 'A');
				
                _datas.Add('Ă', 'A');
                _datas.Add('Ằ', 'A');
                _datas.Add('Ắ', 'A');
                _datas.Add('Ẳ', 'A');
                _datas.Add('Ẵ', 'A');
                _datas.Add('Ặ', 'A');
				
                _datas.Add('Đ', 'D');
				
                _datas.Add('È', 'E');
                _datas.Add('É', 'E');
                _datas.Add('Ẻ', 'E');
                _datas.Add('Ẽ', 'E');
                _datas.Add('Ẹ', 'E');
				
                _datas.Add('Ê', 'E');
                _datas.Add('Ề', 'E');
                _datas.Add('Ế', 'E');
                _datas.Add('Ể', 'E');
                _datas.Add('Ễ', 'E');
                _datas.Add('Ệ', 'E');
				
                _datas.Add('Ì', 'I');
                _datas.Add('Í', 'I');
                _datas.Add('Ỉ', 'I');
                _datas.Add('Ĩ', 'I');
                _datas.Add('Ị', 'I');
				
                _datas.Add('Ò', 'O');
                _datas.Add('Ó', 'O');
                _datas.Add('Ỏ', 'O');
                _datas.Add('Õ', 'O');
                _datas.Add('Ọ', 'O');
				
                _datas.Add('Ô', 'O');
                _datas.Add('Ồ', 'O');
                _datas.Add('Ố', 'O');
                _datas.Add('Ổ', 'O');
                _datas.Add('Ỗ', 'O');
                _datas.Add('Ộ', 'O');
				
                _datas.Add('Ơ', 'O');
                _datas.Add('Ờ', 'O');
                _datas.Add('Ớ', 'O');
                _datas.Add('Ở', 'O');
                _datas.Add('Ỡ', 'O');
                _datas.Add('Ợ', 'O');
				
                _datas.Add('Ù', 'U');
                _datas.Add('Ú', 'U');
                _datas.Add('Ủ', 'U');
                _datas.Add('Ũ', 'U');
                _datas.Add('Ụ', 'U');
				
                _datas.Add('Ư', 'U');
                _datas.Add('Ừ', 'U');
                _datas.Add('Ứ', 'U');
                _datas.Add('Ử', 'U');
                _datas.Add('Ữ', 'U');
                _datas.Add('Ự', 'U');
				
                _datas.Add('Ỳ', 'Y');
                _datas.Add('Ý', 'Y');
                _datas.Add('Ỷ', 'Y');
                _datas.Add('Ỹ', 'Y');
                _datas.Add('Ỵ', 'Y');
				_datas.Add(' ','-');
        }
    }

    //public static class ExtensionMethods
    //{
       

    //}

   
}